[1] 3.162278
[1] 3.162278
Marina Muradian
Passa o objeto do lado esquerdo como primeiro argumento (ou .argumento) da função do lado direito:
x %>% f(y) é equivalente a f(x, y)
y %>% f(x, ., z) é equivalente a f(x, y, z )
Torna a leitura de códigos mais lógica e compreensível
Ctrl + Shift + M
Por que garantir que os dados estejam arrumados?
Problemas comuns nas bases de dados:
# A tibble: 3 x 3
country `1999` `2000`
* <chr> <int> <int>
1 Afghanistan 745 2666
2 Brazil 37737 80488
3 China 212258 213766
1999 e 2000 representam da variável year1999 e 2000 representam a variável casesPara arrumar a table4a,vamos transformar as colunas 1999 e 2000 num novo par de variáveis.
Para essa operação, precisamos de 3 parâmetros:
O conjunto de colunas que representa valores, não variáveis: 1999 e 2000
O nome da variável que receberá os valores acima (names_to): year
O nome da variável que receberá os valores guardados nas colunas (values_to): cases
Juntos, esses parâmetros geram a chamada para pivot_longer():
Na table2, as observações (ano, país) estão espalhadas em linhas diferentes:
# A tibble: 12 x 4
country year type count
<chr> <int> <chr> <int>
1 Afghanistan 1999 cases 745
2 Afghanistan 1999 population 19987071
3 Afghanistan 2000 cases 2666
4 Afghanistan 2000 population 20595360
5 Brazil 1999 cases 37737
6 Brazil 1999 population 172006362
7 Brazil 2000 cases 80488
8 Brazil 2000 population 174504898
9 China 1999 cases 212258
10 China 1999 population 1272915272
11 China 2000 cases 213766
12 China 2000 population 1280428583
Para arrumarmos a table2, utilizaremos a função pivot_wider() que utiliza dois parâmetros:
A coluna que contém o nome das variáveis(names_from): type
A coluna que contém os valores (values_from): count
# A tibble: 6 x 4
country year cases population
<chr> <int> <int> <int>
1 Afghanistan 1999 745 19987071
2 Afghanistan 2000 2666 20595360
3 Brazil 1999 37737 172006362
4 Brazil 2000 80488 174504898
5 China 1999 212258 1272915272
6 China 2000 213766 1280428583
O problema da table3 é diferente:
# A tibble: 6 x 3
country year rate
* <chr> <int> <chr>
1 Afghanistan 1999 745/19987071
2 Afghanistan 2000 2666/20595360
3 Brazil 1999 37737/172006362
4 Brazil 2000 80488/174504898
5 China 1999 212258/1272915272
6 China 2000 213766/1280428583
A coluna rate contém valores de duas variáveis (casese population)
Para corrigir esse problema, utilizaremos a função separate():
A coluna rate contém as duas variáveis que serão separadas
As colunas resultantes serão cases e population
# A tibble: 6 x 4
country year cases population
<chr> <int> <chr> <chr>
1 Afghanistan 1999 745 19987071
2 Afghanistan 2000 2666 20595360
3 Brazil 1999 37737 172006362
4 Brazil 2000 80488 174504898
5 China 1999 212258 1272915272
6 China 2000 213766 1280428583
Intuitivamente, unite() é o inverso de separate(): ele combina várias colunas numa única.
# A tibble: 6 x 4
country century year rate
* <chr> <chr> <chr> <chr>
1 Afghanistan 19 99 745/19987071
2 Afghanistan 20 00 2666/20595360
3 Brazil 19 99 37737/172006362
4 Brazil 20 00 80488/174504898
5 China 19 99 212258/1272915272
6 China 20 00 213766/1280428583
Neste exemplo, nosso interesse é em unir as colunas centurye year numa só (daremos o nome de new).
# A tibble: 6 x 3
country new rate
<chr> <chr> <chr>
1 Afghanistan 1999 745/19987071
2 Afghanistan 2000 2666/20595360
3 Brazil 1999 37737/172006362
4 Brazil 2000 80488/174504898
5 China 1999 212258/1272915272
6 China 2000 213766/1280428583